package io.jari.dumpert.activities;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.MediaController;
import android.widget.VideoView;
import com.nispok.snackbar.Snackbar;
import io.jari.dumpert.R;
/**
* JARI.IO
* Date: 15-1-15
* Time: 10:27
*/
public class VideoActivity extends BaseActivity {
void setTheme() {
//no themes used in this activity
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
switch(visibility) {
case View.SYSTEM_UI_FLAG_VISIBLE:
mediaController.show();
break;
}
}
});
setContentView(R.layout.video);
String url = getIntent().getStringExtra("url");
start(url);
}
void setNavVisibility(boolean visible) {
int newVis = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
if (!visible) {
newVis = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
getWindow().getDecorView().setSystemUiVisibility(newVis);
}
MediaController mediaController;
void start(String url) {
final View videoViewFrame = findViewById(R.id.video_frame);
final VideoView videoView = (VideoView) findViewById(R.id.video);
videoView.setVideoURI(Uri.parse(url));
mediaController = new MediaController(this) {
@Override
public void hide() {
super.hide();
setNavVisibility(false);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
//mediacontroller tries some funny stuff here, so use SUPER HACKY METHODS! yay!
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK)
onBackPressed();
return false;
}
};
mediaController.setAnchorView(videoViewFrame);
videoView.setMediaController(mediaController);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Log.d("dumpert.video", "onPrepared");
findViewById(R.id.loading).setVisibility(View.GONE);
}
});
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
findViewById(R.id.loading).setVisibility(View.GONE);
Snackbar.with(VideoActivity.this)
.text(R.string.video_failed)
.textColor(Color.parseColor("#FFCDD2"))
.show(VideoActivity.this);
return true;
}
});
setNavVisibility(false);
videoView.start();
}
public static void launch(Activity activity, String url) {
Intent intent = new Intent(activity, VideoActivity.class);
intent.putExtra("url", url);
activity.startActivity(intent);
}
}